Capacity planning involves determining what hardware and software configurations are best suited to meet the needs of an application in a computing system in various hypothetical scenarios. A transaction modeling technique can be used to model performance of the application and the computing system, which enables development of capacity planning solutions for arbitrarily complex software applications. These solutions facilitate the analysis of application and computer system performance over a wide range of hypothetical scenarios. However, development of a customized performance model for an application requires significant investments in terms of skilled labor and capital expenditure. Furthermore, the customized performance model for the application cannot be easily adapted to provide a model of a different application.
Alternatively, trending of historical data and forecasting techniques can provide a capacity planning solution for arbitrary applications without requiring performance model customization. However, this technique severely limits the range of hypothetical scenarios supported and thereby limits applicability of the solution.
Moreover, currently available methods for developing performance models generally require a user to manually configure relationships between components of the system in order to take into account the effect of the various dependencies in the system.